DoS
서비스 거부 공격
NIST 컴퓨터 보안 사고 처리 가이드 정의
- 중앙 처리 장치(CPU), 메모리, 대역폭 및 디스크 공간 등의 자원을 소진시켜서 네트워크, 시스템 또는 응용프로그램에 대한 정상적인 사용자의 접근을 힘들게 하거나 봉쇄하는 공격
서비스 거부
- 일부 서비스 이용의 공격 형태
공격받을 수 있는 자원의 종류
네트워크 대역폭
- 인터넷에 서버를 연결시키는 네트워크 링크의 수용성(capability)과 연관
- 대부분의 조직들은 그들의 인터넷 접속 서비스(ISP)에 연결
시스템 자원
- 소프트웨어를 다루는 네트워크 과부화 or 충돌이 목적
응용프로그램 자원
- 일반적으로 대다수의 유효한 요청을 포함하며, 이들 중 각각은 상당한 자원을 소비하고 있음. 그러므로 다른 유저의 요청에 서버가 응답하는 것을 제한
전통적 DoS 공격
Ping Flooding
목적
- 대상 조직에 대해 네트워크 연결 기능을 제압하는 것
특징
- 많은 트래픽은 경로상의 수용력이 큰 링크를 통해 처리
- but 패킷은 수용력이 감소할 때 삭제
- 스푸핑 주소 사용X => 공격 소스 명확하게 식별
- 네트워크 성능에 큰 영향 미침
시작 주소 스푸핑
- 위조된 소스 주소 사용 => 시스템 공격 식별 어려옴
- 공격자는 목적지 주소로 대량의 패킷 발생 & 소스 주소를 무작위로 변경
- EX) ICMP echo request 메시지
- 수신받은 공격 대상은 메시지를 받은 메시지의 소스의 주소로 보냄
- 대부분 주소는 가짜주소
- 일부 주소는 실제 존재할 수도 있음 => 예상치 못한 패킷이 와서 에레메시지 전송 => Flooding 공격 악화
- EX) ICMP echo request 메시지
- 최종 목적지와 연결된 라우터에 혼란 일으킴 => 링크 수용령을 낮춤
- 네트워크 엔지어는 라우터에서 흘러나오는 정보를 명확하게 쿼리할 것을 요청
- 후방 사란(backscatter) 트래픽
- 공격 트래픽을 모니터링 하기 위해 사용되지 않는 IP주소 루트를 유입 알림
SYN 스푸핑
- Flooding과는 다름
- 일반적인 DoS 공격
- TCP 프로토콜을 이용한 네트워크 공격
- TCP 테이블 오버플로우 시킴
단계
- 공격자의 시작주소를 조작하여 SYN메시지 전송
- 공격 대상은 TCP 테이블에 저장
- SYN-ACK를 조작된 주소로 전송
- 실제 시스템 존재 시 RTS(reset)패킷 전달 후 TCP 테이블에서 삭제
- 실제 시스템 존재X 시 요청 실패 한도까지 계속 SYN-ACK 전송 후 한도 도달 시 TCP 테이블에서 삭제
특징
- TCP 테이블 오버플로우 시킴으로써 서버의 기능 공격
- 합법적인 사용자가 서버 접근 거부됨
- 운영체제 자원(코드) 처리 네트워크를 공격
TCP 연결 3-Way Handshaking

TCP SYN 스푸핑 공격

플러딩 공격(Flooding Attacks)
- 사용되는 네트워크 프로토콜을 기반으로 분류
- 서버에 대한 일부 링크의 네트워크 용량을 과부하 시키는 것이 목적
- 실제로 모든 네트워크 패킷 타입이 사용 가능
| 네트워크 패킷 타입 | |
|---|---|
| ICMP 플러드 | - ICMP 에코(echo)를 이용하는 핑 플러딩이 패킷을 요청 - 일반적으로 네트워크 관리자에게 핑은 유용한 네트워크 진단 도구임 - 위와같은 패킷은 네트워크로 유입되도록 허가 |
| UDP 플러드 | - 대상 시스템의 포트 숫자에 연결된 UDP 패킷 사용 |
| TCP SYN 플러드 | - TCP 패킷을 대상 시스템에 전송 - 시스템 코드를 겨냥하기보다는 총체적인 패킷의 양이 공격의 대상 - SYN spoofing과 비슷한 효과 |
기존 Flooding 공격의 한계
- 하나의 시스템만 사용 시 패킷의 양의 한계
- 하나의 시스템을 공격 시 트래픽 패턴이 분석되어 발각이 쉬움
- 공격시스템 용량이 더 작은 네트워크에서는 공격이 어려움
여러 시스템을 이용한 공격
- 대규모의 트래픽 생성 가능
- 직접 공격X => 추적이 어려움
- 공격 시스템이 성능이 좋거나 대용량의 네트워크 링크가 필요없음
여러 시스템을 이용한 공격의 종류
- 분산 DoS 공격
- Reflector 공격
- Amplifier 공격
분산 서비스 거부(DDoS) 공격
특징
- 공격에 다양한 시스템 사용
- 공용어플리케이션의 결함을 악용(좀비)
- 공용어플리케이션을 이용해 OS 또는 시스템에 프로그램 설치 또는 접근권을 얻을 수 있음
- 공격자에 의해 제어되는 많은 시스템 집합이 형성 => 봇넷 구성
- 봇넷이란? 공격자가 제어할 수 있는 다수의 인터넷 연결 장치
룰
- Tribe Flood Network(TFN)
- 2단계 계층 구조를 사용
- Trojan을 이용하여 좀비 시스템을 만들고 운영
- ICMP Flood, SYN flood, UDP flood, ICMP 증폭 공격이 가능
- 시작 주소 조작X 대신 많은 좀비 시스템 이용
목표
- Flooding 공격과 동일 but 추적, 대응
- 이 친구 목표는 뭔데 트래픽 과부화로 정상적인 이용 못하게?
분산 DoS 공격 아키텍쳐

응용프로그램기반 대역폭 공격: 세션 개시 프로토콜(SIP) Flood

SIP
- VoIP 기술에 대한 표준 프로토콜
- HTTP와 유사한 문법을 지닌 텍스트 기반의 프로토콜
- 유형 = 요청과 응답
하이퍼 전송 프로토콜(HTTP)기반 공격
HTTP Flood
- HTTP 요청으로 웹 서버를 포격(bombards)하는 공격
- 상당한 양의 자원 소비
- ex) 많은 좀비시스템이 목표시스템에 용량이 큰 파일을 다운받도록 요청
슬로로리스(slowloris)
- 결코 완료되지 않는 HTTP 요청을 전송함으로써 독점하려는 시도
- HTTP 프로토콜은 헤더의 끝과 페이로드의 경계에서 빈줄을 보내게 되어있음
- 이 줄바꿈을 문자를 보내지 않음으로서 서버는 요청이 실제 들어오기만을 무한정 기다림
- 결국 웹 서버 연결 용량 소비
- 합법적인 HTTP 트래픽 이용
- 기존의 공격 탐지를 위한 시그니처 기반의 침입 탐지 및 예방 솔루션은 대체로 슬로로리스를 인식하지 못함
- 호스트당 요청속도 제한, 타임아웃, delayed biding 등의 방법을 이용하여 방어
Reflector(반사 공격)
방식
- 공격자는 Reflector를 통해 알려진 서비스로 패킷 전송
- Reflector는 실제 타겟의 스푸핑 소스 주소를 가짐
- Reflector의 응답은 실제 타겟에게 전송
목표
- Reflector에게 악용 여부를 알리지 않고 타겟 시스템의 링크를 범람시키는 많은 양의 패킷을 발생
공격
- 서버, 라우텅 터 네트워크 성능이 좋은 Reflector를 이용
방어
- 스푸핑 소스 패킷 차단
UDP 서비스를 이용한 반사 공격
- UDP는 연결형 서비스가 아님. 요청이 들어오면 데이터를 반사적으로 날림
- 작은 사이즈의 서비스 요청메시지로 큰 용량의 데이터 트래픽을 유발 가능
TCP SYN 패킷 Reflector 공격
- 3-way handshake를 이용
- 공격 대상의 주소를 적은 TCP SYN 패킷을 여러 개의 중간 시스템(Reflector)에게 보냄
- 결과는?
DNS 반사 공격
- 중간 시스템(Reflector)와 공격 시스템 간의 루프 형성
- 공격자가 공격 시스템의 주소로 질의 메시지 전송
- 보통 7번 포트 이용(echo 서비스 포트)
- 공격 시스템은 다시 응답 => 더 효과적인 공격 수행

- 공격자가 공격 시스템의 주소로 질의 메시지 전송
Amplifier(증폭 공격)
- 하나의 수신된 패킷에 대해 여러 개의 응답 패킷 생성
- ICMP echo request 이용한 증폭 공격 가능(Ping flood)
- 소스 주소: 공격 대상의 주소로 조작
- 데스티네이션 주소: 브로드 캐스트 주소로 보냄
UDP 서비스 사용
- 데이터 요청 메시지를 브로드캐스트로 전송
- TCP서비스는 연결 지향성이므로 공격에 사용 불가
- 근본적으로 비연결형인 브로드캐스트 주소로 전송 불가능

- 근본적으로 비연결형인 브로드캐스트 주소로 전송 불가능
DNS 증폭 공격
- Reflector 공격과 같이 합법적인 DNS 서버에 직접적인 패킷 사용
- 공격자는 타겟 시스템의 스푸핑 소스 주소를 담고있는 DNS 연쇄적 요청 생성
- 작은 요청을 훨씬 더 많은 응답으로 전환하는 DNS 행위 이용(증폭)
- 60바이트의 UDP 요청 패킷에 대해 512바이트 응답패킷 생성
- 타겟이 응답으로 인해 범람
방어
- 스푸핑 소스 주소의 사용을 방지
DoS 공격 방어
- 완전한 예방은 불가능
- 합법적으로 트래픽 양이 많은 경우 존재
- 특정 사이트 관심 폭주
- 인기 사이트 활동
- ‘slashdotted’, ‘flash crowd’, 또는 ‘flash event’로 묘사
DDOS 공격에 대한 4가지 방어책
- 공격 예방 및 선점(preemption) - 공격 전
- 공격 탐지 및 필터링 - 공격 중
- 공격 소스의 역추적 및 식별 - 공격 중 또는 공격 후
- 공격 대응 - 공격 후
DoS 공격 예방
스푸핑 소스 주소 차단
- 공격 진원지와 가까운 곳에서 수행할수록 효과적
- 소스에 가장 근접한 라우터 상 수행
- 조직이나 가정에 인터넷 서비스를 제공하는 ISP회사가 수행
- ex) Cisco 라우터 “ip verify unicast reverse-path” => 패킷이 전송되어온 경로 확인
Antispoofing 필터링
- 트래픽이 ISP 네트워크를 떠나기 이전 or 네트워크의 진입점을 통과해 들어가기 전에 필터링이 이루어져야함
- 라우터 성능저하가 인터넷의 속도를 낮춘다는 위험성 => 잘 사용X
TCP 연결을 다루는 코드를 수정하여 사용
- 서버가 초기 시퀀스 넘버를 전송할 때 쿠키에 중요 정보를 암호화
- 합법적 클라이언트가 증가하면 시퀀스 넘버 쿠키를 포함하는 ACK 패킷으로 응답 =>합벅적 클라이언트만 연결 허용
- 오버플로우 발생시 TCP 연결 테이블에서 불완전한 연결 삭제
DoS 공격에 대한 대응
적합한 사고 대응 계획
- 기술자와 접촉 방법의 상세화
- 트래픽 필터링 업스트림 시행
- 미리 ISP나 상위 네트워크에서 비정상적 트래픽 필터링
- 공격 대응법의 상세화
구현
- 안티스푸핑
- 다이렉트 브로드캐스팅 금지
- 브로드캐스팅이란? 같은 네트워크에 속한 호스트들에게 동시다발적으로 데이터르를 보내는 것
- Rate Limiting 필터
장비
- IDS => 네트워크 모니터와 이상 트래픽 패턴 탐지